package com.tan.common.domain.chat;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

import com.tan.common.domain.BaseModel;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * <p>
 *
 * </p>
 *
 * @author Tan
 * @since 2025-01-27
 */
@Getter
@Setter
@ToString
@TableName("chat_info")
public class ChatInfo extends BaseModel {

    @Serial
    private static final long serialVersionUID = 1L;


    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 发送方
     */
    private Long sender;

    /**
     * 接收方（用户id/群id）
     */
    private Long receiver;

    /**
     * 消息类型 group_chat,private_chat
     */
    private String messageType;

    /**
     * 群类型 temp_group,fixed_group（冗余）
     */
    private String groupType;

    /**
     * 消息数据类型，text,file
     */
    private String messageDataType;

    /**
     * 消息内容
     */
    private String textContent;

    /**
     * 文件id
     */
    private Long messageFile;

    /**
     * 文件地址（冗余）
     */
    private String fileUrl;

    /**
     * 是否已读（群消息不在此表记录）
     */
    private Boolean readState;

    /**
     * 发送时间
     */
    private LocalDateTime sendTime;

    /**
     * 读取时间
     */
    private LocalDateTime readTime;

    /**
     * 是否撤回
     */
    private Boolean revokeState;

    /**
     * 是否删除
     */
    private Boolean delFlag;
}
